﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WeChatBotSDK.JsonEx;


namespace WeChatBotSDK.Models
{
    public record EventCallback<T>where T : class, new()
    {
        /// <summary>
        /// 事件类型。
        /// </summary>
        //[JsonConverter(typeof(StringToEnumConverter<WechatEventType>))]
        [JsonPropertyName("event")]
        public WechatEventType Event { get; set; }

        /// <summary>
        /// 微信 ID。
        /// </summary>
        [JsonPropertyName("wxid")]
        public string Wxid { get; set; }

        /// <summary>
        /// 回调数据。
        /// </summary>
        [JsonPropertyName("data")]
        public T Data { get; set; }= new T();
    }

    public record EventCallback_D<T> where T : class, new()
    {
        /// <summary>
        /// 事件类型。
        /// </summary>
        [JsonPropertyName("event")]
        public string Event { get; set; }

        /// <summary>
        /// 微信 ID。
        /// </summary>
        [JsonPropertyName("wxid")]
        public string Wxid { get; set; }

        /// <summary>
        /// 回调数据。
        /// </summary>
        [JsonPropertyName("data")]
        public T Data { get; set; } = new T();
    }
}
